package com.ffox.controller;

import com.ffox.result.Result;
import com.ffox.service.UserLoginService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;


/**
 * 用户登录控制器
 * 提供用户登录、注册和删除功能的接口
 */
@RestController
@RequestMapping("/login")
public class UserLoginController {

    @Autowired
    private UserLoginService userLoginService;

    /**
     * 用户登录接口
     * 验证用户账号和密码，如果验证通过则生成JWT令牌并返回用户信息和令牌
     *
     * @param number   用户账号
     * @param password 用户密码
     * @return 登录结果，包含用户信息和JWT令牌
     */
    @PostMapping("/userLogin")
    public Result<Map<String, Object>> userLogin(@RequestParam String number, @RequestParam String password) {
        return userLoginService.userLogin(number, password);
    }

    /**
     * 用户注册接口
     * 接收用户注册信息并调用服务层进行用户注册操作
     *
     * @param number   用户账号
     * @param password 用户密码
     * @param realName 真实姓名
     * @param idCard   身份证号
     * @param mobile   手机号
     * @param email    邮箱
     * @return 注册结果，返回注册影响的记录数
     */
    @PostMapping("/userInsert")
    public Result<Integer> userInsert(@RequestParam String number, @RequestParam String password, @RequestParam String realName, @RequestParam String idCard, @RequestParam String mobile, @RequestParam String email) {
        return userLoginService.userInsert(number, password, realName, idCard, mobile, email);
    }

    /**
     * 用户删除接口
     * 根据用户ID删除指定用户
     *
     * @param id 用户ID
     * @return 删除结果，返回删除影响的记录数
     */
    @PostMapping("/userDelete/{id}")
    public Result<Integer> userDelete(@PathVariable("id") Long id) {
        return userLoginService.userDelete(id);
    }
}
